100
Show a combination of lines and filled curves in the overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions,oFormatGridLinesOptions1
	LOCAL oLegend
	LOCAL oOverview
	LOCAL oSerie,oSerie1,oSerie2
	LOCAL oSeries
	LOCAL oValueAxes
	LOCAL oValueAxis,oValueAxis1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:VisualAppearance():Add(1,"C:\Program Files\Exontrol\ExGraph\Sample\EBN\googlebtn.ebn")
		oGraph:SetProperty("Background",199/*exOverviewSelResize*/,0x1808080)
		oGraph:SetProperty("Background",202/*exOverviewSel*/,0x1f0f0f0)
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oGraph:SeriesColors := "blue,lightblue,green"
		oValueAxes := oGraph:ValueAxes()
			oValueAxis := oValueAxes:Add()
				oValueAxis:Start := 0.1
				oValueAxis:CursorFormat := "(value format ``) replace `.` with `<font ;6><off -4><fgcolor A0A0A0> `"
			oValueAxis1 := oValueAxes:Add("2nd")
				oValueAxis1:End := 0.1
				oValueAxis1:Visible := .F.
				oValueAxis1:MajorGridLines():Color := -1
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Date"
			oCategoryAxis:Format := "value mid 9 left 2"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Format := "`<fgcolor black>` + ((0:=date(value)) format `mmm`) + (month(=:0) = 1 ? `<br><b>` + (=:0 format `YYYY`) : ``)"
				oFormatGridLinesOptions:Align := 10/*exTextAlignBottom+exTextAlignRight*/
				oFormatGridLinesOptions:Color := "lightgray"
			oCategoryAxis:MajorTicks():Color := "black"
			oCategoryAxis:CursorFormat := "value left 10"
			oFormatGridLinesOptions1 := oCategoryAxis:OverviewGridLines()
				oFormatGridLinesOptions1:Format := "value left 4"
				oFormatGridLinesOptions1:Color := "lightgray"
		oSeries := oGraph:Series()
			oSerie := oSeries:Add()
				oSerie:Name := "<fgcolor blue>MSFT</fgcolor>"
				oSerie:Data := "Open,High,Low,Close"
				oSerie:Type := "candle"
				oSerie:CursorFormat := "`Open: <b>` + (%v0 format `0`) + `</b><br>High: ` + (%v1 format `0`) + `<br>Low: ` + (%v2 format `0`) + `<br>Close: <b>` + (%v1 format `0`) + `</b>`"
			oSerie1 := oSeries:Add()
				oSerie1:Name := "<fgcolor lightblue>Volume</fgcolor>"
				oSerie1:Data := "Volume"
				oSerie1:Axis := "2nd"
				oSerie1:CursorFormat := "(name replace `lightblue` with `white`) + `: ` + (value format `0`)"
			oSerie2 := oSeries:Add()
				oSerie2:Name := "<fgcolor green>Adj Close</fgcolor>"
				oSerie2:Data := "Adj Close"
				oSerie2:Type := "line"
				oSerie2:SetProperty("Misc",6/*exLineSize*/,2)
				oSerie2:Style := 1/*exSpline*/
				oSerie2:Visible := .F.
				oSerie2:CursorFormat := "(name replace `green` with `white`) + `: ` + (value format `0`)"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oOverview:Serie := "0,1:darkblue-fill lightblue"
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Grid := "x1"
		oGraph:Cursor():Visible := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
99
Display multiple curves of values in the overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oOverview
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oOverview:Serie := "0:black,0[1]:red,0[2]:blue,0[3]:green"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
98
Display the series as a filled curve rather than a line in the overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oOverview
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oOverview:Serie := "0:red-fill"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
97
Redefine the color to show the serie within the overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oOverview
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oOverview:Serie := "0:red"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
96
Defines the color, style and width/size to display the lines of values in the overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLineOptions
	LOCAL oOverview
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oLineOptions := oOverview:Line()
				oLineOptions:Color := "red"
				oLineOptions:Width := 2
				oLineOptions:Style := 2
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
95
Resizes of the control's overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oOverview
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oOverview:Size := 32
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
94
Anchors the overview-window

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oOverview
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oOverview := oGraph:Overview()
			oOverview:Visible := .T.
			oOverview:Dock := 3/*exLeft*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
93
Shows the overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "msft"
			oSerie:Data := "Open,High,Low,Close"
			oSerie:Type := "candle"
		oGraph:Overview():Visible := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
92
Locks the legend (no value is hidden or shown when user clicks a symbol)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Locked := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
91
Aligns the legend's content

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Grid := "2x"
			oLegend:Align := 0/*exStart*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
90
Arranges the legend objects on columns and rows

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Grid := "2x"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
89
Arranges the legend objects on columns and rows

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Flow := 1/*exTopToBottom*/
			oLegend:Grid := "x2"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
88
Arranges the legend objects from left to right or top to bottom

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Flow := 1/*exTopToBottom*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
87
Defines the size to display the symbol, within the legend

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:SymbolWidth := 32
			oLegend:SymbolHeight := 32
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
86
Defines the height to display the symbol, within the legend

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:SymbolHeight := 32
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
85
Defines the width to display the symbol, within the legend

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:SymbolWidth := 32
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
84
Aligns the symbol of the serie relative to the label of the serie, within the legend

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:SymbolAlign := 17/*exSymbolCenter+exSymbolTop*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
83
Displays the labels using a fixed-size

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:FormatText := 16/*exTextWordBreak*/
			oLegend:LabelFixedWidth := 48
			oLegend:LabelFixedHeight := 32
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
82
Displays the labels using a fixed-height

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:FormatText := 4/*exTextAlignVCenter*/
			oLegend:LabelFixedHeight := 32
			oLegend:Dock := 3/*exLeft*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
81
Displays the labels using a fixed-width

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:FormatText := 32768/*exTextEndEllipsis*/
			oLegend:LabelFixedWidth := 32
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
80
Hides the labels on the legend (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):LegendFormat := "``"
		oGraph:Legend():Visible := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
79
Hides the labels on the legend (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:FormatText := 1024/*exTextCalcRect*/
			oLegend:LabelFixedWidth := 1
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
78
Specifies the flags the labels use to display on the legend (for instance, displays the labels on multiple lines)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:FormatText := 16/*exTextWordBreak*/
			oLegend:LabelFixedWidth := 48
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
77
Reverses the order of the items within the legend

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Reverse := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
76
Defines the legend's padding (space between legend's symbol/label and its borders)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Pad := "12,0"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
75
Specifies the edge of the container the legend-window is anchored to

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
			oLegend:Dock := 1/*exTop*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
74
Show the legend

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():AsPercent := .T.
		oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
		oGraph:Legend():Visible := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
73
Defines the tooltip's padding (space between tooltip's caption and its borders), for tooltips when cursor hovers the chart

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:TooltipPad := "8,8"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
72
Defines the foreground and background colors to show the tooltips on values

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:SerieTooltipBackColor := "red"
			oCursor:SerieTooltipForeColor := "yellow"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
71
Defines the foreground and background colors to show the tooltips on axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:AxisTooltipBackColor := "red"
			oCursor:AxisTooltipForeColor := "yellow"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
70
Defines the color, width or style of line to display the crosshair over the hover/touch area (showCursorCategoryLine or showCursorValueLine)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor
	LOCAL oLineOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oLineOptions := oCursor:Line()
				oLineOptions:Color := "red"
				oLineOptions:Style := 0
				oLineOptions:Width := 2
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
69
Hides the horizontal x-line, when the crosshair cursor hovers the chart (available for xy-chart types only)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor
	LOCAL oSerie,oSerie1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oSerie := oGraph:Series():Add("11 22 33,44 55 66,77 88 99,12 34 56,78 90 23")
			oSerie:Type := "bubble"
			oSerie:SetProperty("Misc",1/*exScatterPlotSize*/,64)
		oSerie1 := oGraph:Series():Add("21 32 43,54 65 76,87 98 09,45 67 89,90 23 45")
			oSerie1:Type := "bubble"
			oSerie1:SetProperty("Misc",1/*exScatterPlotSize*/,64)
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorYLine := .F.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
68
Hides the vertical y-line, when the crosshair cursor hovers the chart (available for xy-chart types only)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor
	LOCAL oSerie,oSerie1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oSerie := oGraph:Series():Add("11 22 33,44 55 66,77 88 99,12 34 56,78 90 23")
			oSerie:Type := "bubble"
			oSerie:SetProperty("Misc",1/*exScatterPlotSize*/,64)
		oSerie1 := oGraph:Series():Add("21 32 43,54 65 76,87 98 09,45 67 89,90 23 45")
			oSerie1:Type := "bubble"
			oSerie1:SetProperty("Misc",1/*exScatterPlotSize*/,64)
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorXLine := .F.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
67
Hides the horizontal/vertical value/y-line, when the crosshair cursor hovers the chart

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorValueLine := .F.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
66
Displays all tooltips for all series of the category unit being indicated by the vertical/horizontal category/x-line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorSerieTooltip := 3/*exCursorSerieShowAll*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
65
The pointer indicates the series whose tooltip is displayed, when the crosshair cursor hovers its chart

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorSerieTooltip := 2/*exCursorSerieShowExact*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
64
Hides the tooltip when the crosshair cursor hovers the chart

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorSerieTooltip := 0/*exCursorSerieHide*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
63
Shows the category/x-line when the cursor is near the value

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorCategoryLine := 1/*exCursorCategoryShowNear*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
62
Hides the cursor's category/x-line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCursor

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oCursor := oGraph:Cursor()
			oCursor:Visible := .T.
			oCursor:ShowCursorCategoryLine := 0/*exCursorCategoryHide*/
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
61
How can I show the values from the cursor

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
		oGraph:Cursor():Visible := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
60
Defines the style to display the axis-line
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():AxisLine():Style := 2
		oGraph:CategoryAxis():AxisLine():Style := 2
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Paris(2148271),Marseille(1748148),Lyon(1637677),Toulouse(1360829),Nice(1000548),Nantes(973133),Strasbourg(785839),Montpellier(590741),Bordeaux(589649),Lille(484786)")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
59
Defines the color to show the axis

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():AxisLine():Color := "red"
		oGraph:CategoryAxis():AxisLine():Color := "red"
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Paris(2148271),Marseille(1748148),Lyon(1637677),Toulouse(1360829),Nice(1000548),Nantes(973133),Strasbourg(785839),Montpellier(590741),Bordeaux(589649),Lille(484786)")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
58
Specifies the step to show the ticks for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorTicks():Step := 2
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Berlin(3769495),Hamburg(1847253),Munich(1471508),Cologne(1085664),Frankfurt(753056),Stuttgart(731374),Düsseldorf(620877),Dortmund(586600),Essen(582760),Bremen(565719)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
57
Specifies the number of ticks to skip for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorTicks():Skip := 3
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Berlin(3769495),Hamburg(1847253),Munich(1471508),Cologne(1085664),Frankfurt(753056),Stuttgart(731374),Düsseldorf(620877),Dortmund(586600),Essen(582760),Bremen(565719)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
56
Defines the style to show the major-ticks of value or category axes
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oTickOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oTickOptions := oGraph:ValueAxis():MajorTicks()
			oTickOptions:Style := 1
			oTickOptions:Width := 3
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Berlin(3769495),Hamburg(1847253),Munich(1471508),Cologne(1085664),Frankfurt(753056),Stuttgart(731374),Düsseldorf(620877),Dortmund(586600),Essen(582760),Bremen(565719)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
55
Defines the color to show the major-ticks of value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oTickOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oTickOptions := oGraph:ValueAxis():MajorTicks()
			oTickOptions:Color := "red"
			oTickOptions:Width := 3
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Berlin(3769495),Hamburg(1847253),Munich(1471508),Cologne(1085664),Frankfurt(753056),Stuttgart(731374),Düsseldorf(620877),Dortmund(586600),Essen(582760),Bremen(565719)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
54
Specifies the size to show the major-ticks of value or category axes
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorTicks():Width := 3
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Berlin(3769495),Hamburg(1847253),Munich(1471508),Cologne(1085664),Frankfurt(753056),Stuttgart(731374),Düsseldorf(620877),Dortmund(586600),Essen(582760),Bremen(565719)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
53
Defines the step to show the major-grid lines, for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorGridLines():Step := 2
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Bucharest(1883425),Cluj-Napoca(316748),Timisoara(319279),Iasi(382484),Constanta(283872),Brasov(253200),Galati(249432),Craiova(269506),Ploiesti(209945),Oradea(222239)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
52
Specifies the number of major grid-line's to skip, for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorGridLines():Skip := 3
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Bucharest(1883425),Cluj-Napoca(316748),Timisoara(319279),Iasi(382484),Constanta(283872),Brasov(253200),Galati(249432),Craiova(269506),Ploiesti(209945),Oradea(222239)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
51
Specifies the style of the major grid-line (dash, dot, ...), for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorGridLines():Style := 2
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Bucharest(1883425),Cluj-Napoca(316748),Timisoara(319279),Iasi(382484),Constanta(283872),Brasov(253200),Galati(249432),Craiova(269506),Ploiesti(209945),Oradea(222239)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
50
Specifies the major grid-line's color, for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorGridLines():Color := "red"
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Bucharest(1883425),Cluj-Napoca(316748),Timisoara(319279),Iasi(382484),Constanta(283872),Brasov(253200),Galati(249432),Craiova(269506),Ploiesti(209945),Oradea(222239)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
49
Specifies the major grid-line's width or size, for value or category axes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueAxis():MajorGridLines():Width := 2
		oGraph:AutoFit := .T.
		oGraph:Series():Add("Bucharest(1883425),Cluj-Napoca(316748),Timisoara(319279),Iasi(382484),Constanta(283872),Brasov(253200),Galati(249432),Craiova(269506),Ploiesti(209945),Oradea(222239)")
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
48
Hide the labels of the grid lines (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 64
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "value"
				oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
47
Aligns the labels of the grid lines (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 64
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "`<fgcolor gray>` + value"
				oFormatGridLinesOptions:Align := 258/*exTextNoClip+exTextAlignRight*/
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
46
Defines where the grid lines appear on chart or overview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "value = `Sitka`"
				oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
45
Defines the labels between grid lines (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Format := "``"
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "`<c>` + value + `<br><c>` + index"
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
44
Defines the step to show the grid lines (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "index"
				oFormatGridLinesOptions:Step := 2
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
43
Specifies the number of grid lines to skip (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "index"
				oFormatGridLinesOptions:Skip := 3
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
42
Defines the grid-line dash-dot-dot-style (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Style := 4
				oFormatGridLinesOptions:Format := "index"
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
41
Defines the grid-line dash-dot-style (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Style := 3
				oFormatGridLinesOptions:Format := "index"
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
40
Defines the grid-line dot-style (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Style := 2
				oFormatGridLinesOptions:Format := "index"
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
39
Defines the grid-line dash-style (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Style := 1
				oFormatGridLinesOptions:Format := "index"
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
38
Specifies the grid-line's color (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "red"
				oFormatGridLinesOptions:Format := "index"
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
37
Specifies the grid-line's width or size (chart, overview)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oCategoryAxis
	LOCAL oFormatGridLinesOptions

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oCategoryAxis := oGraph:CategoryAxis()
			oCategoryAxis:Categories := "Anchorage,Juneau,Fairbanks,Sitka,Ketchikan,Wasilla,Kenai,Kodiak,Bethel,Palmer"
			oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
				oFormatGridLinesOptions:Color := "black"
				oFormatGridLinesOptions:Format := "index"
				oFormatGridLinesOptions:Width := 2
		oGraph:Series():Add("291247,32269,30917,8588,8208,10529,7757,5968,6481,7393")
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
36
Occurs when the user dblclk the left mouse button over an object
PROCEDURE OnDblClick(oGraph,Shift,X,Y)
	DevOut( "DblClick event" )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:DblClick := {|Shift,X,Y| OnDblClick(oGraph,Shift,X,Y)} /*Occurs when the user dblclk the left mouse button over an object.*/

		oGraph:ValueSize := 18
		oSerie := oGraph:Series():Add("Hulunbuir{China}(263068),Abu Dhabi{United Arab Emirates}(97200),Jiuquan{China}(167996),Altamira{Brazil}(159891),Brasília{Brazil}(5784),Mumbai{India}(603.4),Delhi{India}(1484),Chongqing{China}(82400),Hulunbuir{China}(263068),Sao Paulo{Brazil}(1522),Linfen{China}(20527),Santiago{Chile}(641),Mexico City{Mexico}(1485),Belo Horizonte{Brazil}(313),Hangzhou{China}(16817),Nairobi{Kenya}(696),Berlin{Germany}(891.68),Montreal{Canada}(431.5),Cordoba{Argentina}(576),Manaus{Brazil}(11401),Astana{Kazakhstan}(810),Goiâni" +;
		"a{Brazil}(741),Cali{Colombia}(564),Sao Paulo{Brazil}(1522),Goiania{Brazil}(781)")
			oSerie:Type := "Col"
			oSerie:Vertical := .T.
		oGraph:Sort := "0:D"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
35
Occurs when the user presses and then releases the left mouse button over the control
PROCEDURE OnClick(oGraph)
	DevOut( "Click event" )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:Click := {|| OnClick(oGraph)} /*Occurs when the user presses and then releases the left mouse button over the control.*/

		oGraph:ValueSize := 18
		oSerie := oGraph:Series():Add("Hulunbuir{China}(263068),Abu Dhabi{United Arab Emirates}(97200),Jiuquan{China}(167996),Altamira{Brazil}(159891),Brasília{Brazil}(5784),Mumbai{India}(603.4),Delhi{India}(1484),Chongqing{China}(82400),Hulunbuir{China}(263068),Sao Paulo{Brazil}(1522),Linfen{China}(20527),Santiago{Chile}(641),Mexico City{Mexico}(1485),Belo Horizonte{Brazil}(313),Hangzhou{China}(16817),Nairobi{Kenya}(696),Berlin{Germany}(891.68),Montreal{Canada}(431.5),Cordoba{Argentina}(576),Manaus{Brazil}(11401),Astana{Kazakhstan}(810),Goiâni" +;
		"a{Brazil}(741),Cali{Colombia}(564),Sao Paulo{Brazil}(1522),Goiania{Brazil}(781)")
			oSerie:Type := "Col"
			oSerie:Vertical := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
34
Determine the code of the key the user presses
PROCEDURE OnKeyPress(oGraph,KeyAscii)
	/*print"KeyAscii",KeyAscii)*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:KeyPress := {|KeyAscii| OnKeyPress(oGraph,KeyAscii)} /*Occurs when the user presses and releases an ANSI key.*/

		oGraph:ValueSize := 48
		oGraph:SetProperty("Misc",10/*exUpdateRangeOnScroll*/,0)
		oSerie := oGraph:Series():Add("China(1403500365),India(1368737513),UnitedStates(330810184),Indonesia(272881945),Pakistan(220892331),Brazil(212559417),Nigeria(206139587),Bangladesh(169575884),Russia(145912025),Mexico(128932753),Japan(126476458),Ethiopia(114963588),Philippines(112392078),Egypt(110530608),Vietnam(97429061),DR.Congo(89561404),Turkey(84339067),Iran(83720412),Germany(83132799),Thailand(69799978),UnitedKingdom(68207116),France(65311982),Italy(59554028),Tanzania(59091392),SouthAfrica(58775022)")
			oSerie:Type := "Pie"
			oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
			oSerie:ValueFormat := "category"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
33
Determine the code of the key the user just released
PROCEDURE OnKeyUp(oGraph,KeyCode,Shift)
	/*print"KeyCode",KeyCode)*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:KeyUp := {|KeyCode,Shift| OnKeyUp(oGraph,KeyCode,Shift)} /*Occurs when the user releases a key while an object has the focus.*/

		oGraph:ValueSize := 48
		oGraph:SetProperty("Misc",10/*exUpdateRangeOnScroll*/,0)
		oGraph:Series():Add("Russia(17098242),Canada(9984670),China(9596961),UnitedStates(9525067),Brazil(8515767),Australia(7692024),India(3287263),Argentina(2780400),Kazakhstan(2724900),Algeria(2381741),CongoDemocraticRepublicofthe(2344858),Greenland(2166086),SaudiArabia(2149690),Mexico(1964375),Indonesia(1904569),Sudan(1861484),Libya(1759540),Iran(1648195),Mongolia(1564116),Peru(1285216),Niger(1267000),Chad(1284000),Angola(1246700),Mali(1240192),SouthAfrica(1221037)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
32
Determine the code of the key the user presses
PROCEDURE OnKeyDown(oGraph,KeyCode,Shift)
	/*print"KeyCode",KeyCode)*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:KeyDown := {|KeyCode,Shift| OnKeyDown(oGraph,KeyCode,Shift)} /*Occurs when the user presses a key while an object has the focus.*/

		oGraph:ValueSize := 48
		oGraph:SetProperty("Misc",10/*exUpdateRangeOnScroll*/,0)
		oGraph:Series():Add("Russia(17098242),Canada(9984670),China(9596961),UnitedStates(9525067),Brazil(8515767),Australia(7692024),India(3287263),Argentina(2780400),Kazakhstan(2724900),Algeria(2381741),CongoDemocraticRepublicofthe(2344858),Greenland(2166086),SaudiArabia(2149690),Mexico(1964375),Indonesia(1904569),Sudan(1861484),Libya(1759540),Iran(1648195),Mongolia(1564116),Peru(1285216),Niger(1267000),Chad(1284000),Angola(1246700),Mali(1240192),SouthAfrica(1221037)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
31
How can reverse the chart

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Reverse := .T.
		oSerie := oGraph:Series():Add("Friendster(121111111),Facebook(979750000),Flickr(79664888),Google Buzz(170000000),Google+(107319100),Hi5(900202990),Instagram(80202990),MySpace(80202990),Orkut(45067022),Pinterest(197319100),Reddit(360250000),Snapchat(280250000),TikTok(860250000),Tumblr(146890156),Twitter(160250000),WeChat(118123370),Weibo(79195730),Whatsapp(1160250000),YouTube(844638200)")
			oSerie:Vertical := .T.
		oGraph:SeriesColors := "dodgerblue"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
30
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ScrollBars := 15/*exDisableBoth*/
		oGraph:SetProperty("ScrollPartVisible",0/*exVScroll*/,65536/*exExtentThumbPart*/,.T.)
		oGraph:SetProperty("ScrollPartVisible",1/*exHScroll*/,65536/*exExtentThumbPart*/,.T.)
		oGraph:SetProperty("ScrollPartVisible",2/*0x2+*/,65536/*exExtentThumbPart*/,.T.)
		oGraph:ScrollWidth := 4
		oGraph:SetProperty("Background",276/*0x114+*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oGraph:SetProperty("Background",260/*0x104+*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oGraph:ScrollHeight := 4
		oGraph:SetProperty("Background",404/*0x194+*/,oGraph:Background(276/*0x114+*/))
		oGraph:SetProperty("Background",388/*0x184+*/,oGraph:Background(260/*0x104+*/))
		oGraph:SetProperty("Background",511/*0x12c+exSerieCursorTooltipTransparent*/,oGraph:Background(276/*0x114+*/))
		oGraph:BeginUpdate()
		oGraph:ValueSize := 6
		oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/aapl.txt"
		oSerie := oGraph:Series():Add()
			oSerie:Name := "aapl"
			oSerie:Data := "AAPL (open),AAPL (high),AAPL (low),AAPL (close)"
			oSerie:Type := "candle"
		oGraph:EndUpdate()
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
29
Define a bubble chart-type

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oSerie := oGraph:Series():Add()
			oSerie:Data := "1 99 1,2 96 2,3 92 3,4 86 4,5 79 5,6 70 6,7 60 7,8 50 8,9 38 9,10 25 10,11 13 11"
			oSerie:Type := "bubble"
			oSerie:SetProperty("Misc",1/*exScatterPlotSize*/,96)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
28
Is it possible to show the values with the same color (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie
	LOCAL oValueAxis

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:SetProperty("Misc",13/*exValueAxisFitLabel*/,.T.)
		oGraph:SetProperty("Misc",22/*exValueLineAddAngle*/,0)
		oGraph:ValuePoint := ",,,,,,,,,0,0"
		oValueAxis := oGraph:ValueAxis()
			oValueAxis:Format := "value ? (value / 1000000)  + `<br><c>mil`: ``"
			oValueAxis:Tfi := "<fgcolor gray> bold"
		oSerie := oGraph:Series():Add("China(1439323776),India(1380004385),US(331002651),Indonesia(273523615),Pakistan(220892340),Brazil(212559417),Nigeria(206139589),Bangladesh(164689383),Russia(145934462),Mexico(128932753)")
			oSerie:Type := "column"
			oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
			oSerie:ValueFormat := "((value format ``) replace `.00` with ``)"
			oSerie:Color := "blue"
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
27
Is it possible to show the values with the same color (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie
	LOCAL oValueAxis

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:SetProperty("Misc",13/*exValueAxisFitLabel*/,.T.)
		oGraph:SetProperty("Misc",22/*exValueLineAddAngle*/,0)
		oGraph:ValuePoint := ",,,,,,,,,0,0"
		oValueAxis := oGraph:ValueAxis()
			oValueAxis:Format := "value ? (value / 1000000)  + `<br><c>mil`: ``"
			oValueAxis:Tfi := "<fgcolor gray> bold"
		oSerie := oGraph:Series():Add("China(1439323776),India(1380004385),US(331002651),Indonesia(273523615),Pakistan(220892340),Brazil(212559417),Nigeria(206139589),Bangladesh(164689383),Russia(145934462),Mexico(128932753)")
			oSerie:Type := "column"
			oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
			oSerie:ValueFormat := "((value format ``) replace `.00` with ``)"
		oGraph:Series():Add("0"):Visible := .F.
		oGraph:Sort := "0:D"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
26
Pie chart

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oLegend
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:Type := "pie"
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
			oSerie:ValueFormat := "category + `<br>` + ((percent) format ``) + `%`"
			oSerie:LegendFormat := "label + `(` + ((percent) format ``) + `%)`"
		oGraph:ValuePoint := ",,,,,,,,transparent"
		oLegend := oGraph:Legend()
			oLegend:Visible := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
25
Define the pad for value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,,,,,,8"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
24
Hide the frame around the value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,,,,,0"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
23
Remove the frame around the value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,,,,transparent"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
22
Apply the color of the data-value to the value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
			oSerie:ValueFormat := "`<fgcolor white>` + value"
		oGraph:ValuePoint := ",,,,,,,null"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
21
Apply an opaque color to the value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,,,red"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20
Remove the line that connects the value point to value-label (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,,0"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19
Define a shorter line (connects the value point to value-label)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,,8"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18
Define the size of the line that connects the value point to value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,1"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
17
Hide the line that connects the value point to value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,,0"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16
Remove the line that connects the value point to value-label (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,transparent"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15
Change the color to show the line that connects the value point to value-label

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,,red"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14
Change the frame's size around the value-point

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,4"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13
Change the frame's size around the value-point

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,,0"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
12
Hide the value-points, but still the value-label (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",transparent,transparent"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
11
Hide the value-points, but still the value-label (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := "0"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10
Change the color to show the border of the value-point

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",,black"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9
Makes the value point to show in the data-color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := ",null"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8
Defines bigger value-points

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oSerie

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oGraph:ValueAxis():Format := "value/100000"
		oSerie := oGraph:Series():Add("Tokyo(37833000), Delhi(30290000), Shanghai(27058000), São Paulo(22043000), Mumbai(20668000), Beijing(20384000), Karachi(20000000), Dhaka(17072000), Istanbul(15029000), Los Angeles(13131000)")
			oSerie:ShowValue := -1/*0xffffff78+exHideIfEmpty+exValue+exLine+exPoint*/
		oGraph:ValuePoint := "16"
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7
How can I change the color to show the axes (method 3)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oValueAxis

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oValueAxis := oGraph:ValueAxis()
			oValueAxis:Format := "`<fgcolor red>` + value"
		oGraph:Series():Add("Friendster(121111111),Facebook(979750000),Flickr(79664888),Google Buzz(170000000),Google+(107319100),Hi5(900202990),Instagram(80202990),MySpace(80202990),Orkut(45067022),Pinterest(197319100),Reddit(360250000),Snapchat(280250000),TikTok(860250000),Tumblr(146890156),Twitter(160250000),WeChat(118123370),Weibo(79195730),Whatsapp(1160250000),YouTube(844638200)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6
How can I change the color to show the axes (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oValueAxis

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oValueAxis := oGraph:ValueAxis()
			oValueAxis:Tfi := "<fgcolor red>"
		oGraph:Series():Add("Friendster(121111111),Facebook(979750000),Flickr(79664888),Google Buzz(170000000),Google+(107319100),Hi5(900202990),Instagram(80202990),MySpace(80202990),Orkut(45067022),Pinterest(197319100),Reddit(360250000),Snapchat(280250000),TikTok(860250000),Tumblr(146890156),Twitter(160250000),WeChat(118123370),Weibo(79195730),Whatsapp(1160250000),YouTube(844638200)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5
How can I change the color to show the axes (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oGraph:Series():Add("Friendster(121111111),Facebook(979750000),Flickr(79664888),Google Buzz(170000000),Google+(107319100),Hi5(900202990),Instagram(80202990),MySpace(80202990),Orkut(45067022),Pinterest(197319100),Reddit(360250000),Snapchat(280250000),TikTok(860250000),Tumblr(146890156),Twitter(160250000),WeChat(118123370),Weibo(79195730),Whatsapp(1160250000),YouTube(844638200)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4
Does the control's print supports "fit to page"

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oPrint
	LOCAL oSeries

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:AutoFit := .T.
		oSeries := oGraph:Series()
			oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)")
			oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)")
		oGraph:EndUpdate()
		oPrint := CreateObject("Exontrol.Print")
			oPrint:PrintExt := oGraph
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3
How can I print the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph
	LOCAL oPrint

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:ValueSize := 36
		oGraph:Series():Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)")
		oGraph:EndUpdate()
		oPrint := CreateObject("Exontrol.Print")
			oPrint:PrintExt := oGraph
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
2
How do I change the control's foreground color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oGraph:Series():Add("-1,2,-3,4")
		oGraph:AutoFit := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1
How do I change the control's background color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oGraph

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oGraph := XbpActiveXControl():new( oForm:drawingArea )
	oGraph:CLSID  := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
	oGraph:create(,, {10,60},{610,370} )

		oGraph:BeginUpdate()
		oGraph:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oGraph:Series():Add("1,2,3,4")
		oGraph:AutoFit := .T.
		oGraph:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN